在某些條件為真的情況下,執行程式碼。
範例1:
若輸入錯誤,便一直執行迴圈,直到輸入正確為止。
name = ""
while name == "":
name = input("請輸入名字:")
print(f"你好,{name}!")
範例2:
輸入數字1-10,若超出範圍,則進入迴圈重新輸入
num = int(input("請輸入數字1-10:"))
while num < 1 or num > 10:
print("輸入無效,請重新輸入")
num = int(input("請輸入數字1-10:"))
print(f"你輸入的數字是{num}")
接下來,我們可運用練習來更熟悉while迴圈的用法。
練習:複利計算機
(總金額=本金x(1+(利率/100)) xx時間)
amount = 0
while amount <= 0:
if amount <= 0:
print("本金需大於零,請重新輸入")
amount = float(input("請輸入本金金額:"))
rate = 0
while rate <= 0:
if rate <= 0:
print("利率需大於零,請重新輸入")
rate = float(input("請輸入利率:"))
time = 0
while time <= 0:
if time <= 0:
print("年限需大於零,請重新輸入")
time = float(input("請輸入年限:"))
print("金額:", amount)
print("利率:", rate)
print("年限:", time)
total = amount * (1 + (rate / 100)) ** time
print("總金額:", total)
使一段程式碼執行固定次數(需設可迭代的範圍)。
範例1:
for x in range(1, 11): #此範圍包含1,但不包含11
print(x)
此運行結果為1 2 3 … 10。
範例2:倒計時
for x in reversed(range(1, 11)): #reversed為倒數方法
print(x)
print("time out!")
此運行結果為10 9 8 … 1。
範例3:字串迭代
num = 1234-5678-9012
for x in num:
if x == '2':
continue #繼續執行迴圈
elif x == '4':
break #停止運行迴圈
else:
print(x)
此運行結果為1 3。
範例4:字典
(鍵key : 值value)
dict = {"a" : 1, "b" : 2, "c" :3}
for key, value in dict.items(): #items方法可迭代兩個變數
print("key:", key)
print("value:", value)
指在一迴圈(外部迴圈)中,包含了另一個迴圈(內部迴圈)的程式碼。
範例1:
for y in range(5):
for x in range(1, 10):
print(x, end = " ") #end表示x後輸入的結尾符號(原預設為換行)
print() #印出換行
此運行結果為:
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
範例2:
rows = int(input("請輸入行數:"))
cols = int(input("請輸入列數:"))
symbol = int(input("請輸入符號:"))
for x in range(rows):
for y in range(cols):
print(symbol, end = " ")
print()
最後,讓我們運用先前所學到的技巧,進行實作練習吧!
練習:製作碼錶
import time
ourtime = int(input("請輸入秒數:"))
for x in range(ourtime, 0, -1): #-1指的是倒計時
seconds = x % 60 #秒數為/60的餘數
minutes = x // 60 % 60 #/的結果為浮點數,//則為整數
print(f"{minutes : 02} : {seconds : 02}") #設定格式00:00
time.sleep(1) #運行休息1秒
print("time out!")